package io.gitee.milklynk.vo.request;

import com.alibaba.fastjson2.annotation.JSONField;
import io.gitee.milklynk.vo.enums.Role;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Message {
    /**
     * 请求: 该消息的发起角色{@link Role}
     */
    @JSONField(name = "role")
    private String role;

    /**
     * 请求: 消息的内容
     */
    @JSONField(name = "content")
    private String content;

    /**
     * 可以选填的参与者的名称，为模型提供信息以区分相同角色的参与者。
     */
    @JSONField(name = "name")
    private String name;

    /**
     * (Beta) 设置此参数为 true，来强制模型在其回答中以此 assistant 消息中提供的前缀内容开始
     * 您必须设置 base_url="https://api.deepseek.com/beta" 来使用此功能。
     */
    @JSONField(name = "prefix")
    private Boolean prefix;

    /**
     * (Beta) 用于 deepseek-reasoner 模型在对话前缀续写功能下，作为最后一条 assistant 思维链内容的输入。
     * 使用此功能时，prefix 参数必须设置为 true。
     */
    @JSONField(name = "reasoning_content")
    private String reasoningContent;

    /**
     * 此消息所响应的 tool call 的 ID。
     */
    @JSONField(name = "tool_call_id")
    private String toolCallId;

}
